﻿using System;
using System.Collections.Generic;
using SharpSqlAnalyzer.nodes.mssql;
using SharpSqlAnalyzer.nodes.oracle;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002A7 RID: 679
	public class TCreateProcedureSqlNode : TParseTreeNode
	{
		// Token: 0x1700047D RID: 1149
		// (set) Token: 0x0600168D RID: 5773 RVA: 0x0032739C File Offset: 0x0032559C
		public List<TCreateFunctionOption> FunctionOptions
		{
			set
			{
				if (value == null)
				{
					return;
				}
				for (int i = 0; i < value.Count; i++)
				{
					this.FunctionOptoin = value[i];
				}
			}
		}

		// Token: 0x1700047E RID: 1150
		// (set) Token: 0x0600168E RID: 5774 RVA: 0x003273CC File Offset: 0x003255CC
		public TCreateFunctionOption FunctionOptoin
		{
			set
			{
				this._functionOption = value;
				switch (this._functionOption.OptionType)
				{
				case ECreateFunctionOptionType.stmts:
					this._functionBody = this._functionOption.FunctionBody;
					return;
				case ECreateFunctionOptionType.block:
					this._functionBody = this._functionOption.FunctionBody;
					return;
				case ECreateFunctionOptionType.language:
					this._procedureLanguage = this._functionOption.Language;
					return;
				case ECreateFunctionOptionType.window:
				case ECreateFunctionOptionType.common:
					break;
				case ECreateFunctionOptionType.objfile:
					this._objfile = this._functionOption.Objfile;
					this._linkSymbol = this._functionOption.LinkSymbol;
					break;
				default:
					return;
				}
			}
		}

		// Token: 0x1700047F RID: 1151
		// (get) Token: 0x0600168F RID: 5775 RVA: 0x00327463 File Offset: 0x00325663
		// (set) Token: 0x06001690 RID: 5776 RVA: 0x0032746B File Offset: 0x0032566B
		public TTypeName ReturnDataType
		{
			get
			{
				return this._returnDataType;
			}
			set
			{
				this._returnDataType = value;
			}
		}

		// Token: 0x17000480 RID: 1152
		// (get) Token: 0x06001691 RID: 5777 RVA: 0x00327474 File Offset: 0x00325674
		// (set) Token: 0x06001692 RID: 5778 RVA: 0x0032747C File Offset: 0x0032567C
		public TConstant Objfile
		{
			get
			{
				return this._objfile;
			}
			set
			{
				this._objfile = value;
			}
		}

		// Token: 0x17000481 RID: 1153
		// (get) Token: 0x06001693 RID: 5779 RVA: 0x00327485 File Offset: 0x00325685
		// (set) Token: 0x06001694 RID: 5780 RVA: 0x0032748D File Offset: 0x0032568D
		public TConstant LinkSymbol
		{
			get
			{
				return this._linkSymbol;
			}
			set
			{
				this._linkSymbol = value;
			}
		}

		// Token: 0x17000482 RID: 1154
		// (get) Token: 0x06001695 RID: 5781 RVA: 0x00327496 File Offset: 0x00325696
		// (set) Token: 0x06001696 RID: 5782 RVA: 0x0032749E File Offset: 0x0032569E
		public TConstant ProcedureLanguage
		{
			get
			{
				return this._procedureLanguage;
			}
			set
			{
				this._procedureLanguage = value;
			}
		}

		// Token: 0x17000483 RID: 1155
		// (get) Token: 0x06001697 RID: 5783 RVA: 0x003274A7 File Offset: 0x003256A7
		// (set) Token: 0x06001698 RID: 5784 RVA: 0x003274AF File Offset: 0x003256AF
		public TConstant FunctionBody
		{
			get
			{
				return this._functionBody;
			}
			set
			{
				this._functionBody = value;
			}
		}

		// Token: 0x06001699 RID: 5785 RVA: 0x003274B8 File Offset: 0x003256B8
		public void setCompoundSqls(TCompoundSqlNode c)
		{
			this._compoundSqls = c;
		}

		// Token: 0x0600169A RID: 5786 RVA: 0x003274C1 File Offset: 0x003256C1
		public void setParameters(TParameterDeclarationList p)
		{
			this._parameters = p;
		}

		// Token: 0x17000484 RID: 1156
		// (get) Token: 0x0600169C RID: 5788 RVA: 0x003274D3 File Offset: 0x003256D3
		// (set) Token: 0x0600169B RID: 5787 RVA: 0x003274CA File Offset: 0x003256CA
		public virtual List<TProcedureOption> ProcedureOptions
		{
			get
			{
				return this._procedureOptions;
			}
			set
			{
				this._procedureOptions = value;
			}
		}

		// Token: 0x17000485 RID: 1157
		// (get) Token: 0x0600169E RID: 5790 RVA: 0x003274E4 File Offset: 0x003256E4
		// (set) Token: 0x0600169D RID: 5789 RVA: 0x003274DB File Offset: 0x003256DB
		public virtual bool ForReplication
		{
			get
			{
				return this._isForReplication;
			}
			set
			{
				this._isForReplication = value;
			}
		}

		// Token: 0x17000486 RID: 1158
		// (get) Token: 0x060016A0 RID: 5792 RVA: 0x003274F5 File Offset: 0x003256F5
		// (set) Token: 0x0600169F RID: 5791 RVA: 0x003274EC File Offset: 0x003256EC
		public virtual TObjectName LabelName
		{
			get
			{
				return this._labelName;
			}
			set
			{
				this._labelName = value;
			}
		}

		// Token: 0x17000487 RID: 1159
		// (get) Token: 0x060016A2 RID: 5794 RVA: 0x00327506 File Offset: 0x00325706
		// (set) Token: 0x060016A1 RID: 5793 RVA: 0x003274FD File Offset: 0x003256FD
		public virtual TObjectName EndLabelName
		{
			get
			{
				return this._endLabelName;
			}
			set
			{
				this._endLabelName = value;
			}
		}

		// Token: 0x17000488 RID: 1160
		// (get) Token: 0x060016A4 RID: 5796 RVA: 0x00327517 File Offset: 0x00325717
		// (set) Token: 0x060016A3 RID: 5795 RVA: 0x0032750E File Offset: 0x0032570E
		public virtual TInvokerRightsClause InvokerRightsClause
		{
			get
			{
				return this._invokerRightsClause;
			}
			set
			{
				this._invokerRightsClause = value;
			}
		}

		// Token: 0x17000489 RID: 1161
		// (get) Token: 0x060016A6 RID: 5798 RVA: 0x00327528 File Offset: 0x00325728
		// (set) Token: 0x060016A5 RID: 5797 RVA: 0x0032751F File Offset: 0x0032571F
		public virtual TCallSpec CallSpec
		{
			get
			{
				return this._callSpec;
			}
			set
			{
				this._callSpec = value;
			}
		}

		// Token: 0x1700048A RID: 1162
		// (get) Token: 0x060016A7 RID: 5799 RVA: 0x00327530 File Offset: 0x00325730
		public virtual TObjectName ProcedureName
		{
			get
			{
				return this._procedureName;
			}
		}

		// Token: 0x1700048B RID: 1163
		// (get) Token: 0x060016A8 RID: 5800 RVA: 0x00327538 File Offset: 0x00325738
		// (set) Token: 0x060016A9 RID: 5801 RVA: 0x00327540 File Offset: 0x00325740
		public virtual TParameterDeclarationList Parameters
		{
			get
			{
				return this._parameters;
			}
			set
			{
				this._parameters = value;
			}
		}

		// Token: 0x1700048C RID: 1164
		// (get) Token: 0x060016AB RID: 5803 RVA: 0x00327552 File Offset: 0x00325752
		// (set) Token: 0x060016AA RID: 5802 RVA: 0x00327549 File Offset: 0x00325749
		public virtual TStatementListSqlNode InnerStmts
		{
			get
			{
				return this._innerStmts;
			}
			set
			{
				this._innerStmts = value;
			}
		}

		// Token: 0x1700048D RID: 1165
		// (get) Token: 0x060016AD RID: 5805 RVA: 0x00327563 File Offset: 0x00325763
		// (set) Token: 0x060016AC RID: 5804 RVA: 0x0032755A File Offset: 0x0032575A
		public virtual TStatementSqlNode Stmt
		{
			get
			{
				return this._stmt;
			}
			set
			{
				this._stmt = value;
			}
		}

		// Token: 0x1700048E RID: 1166
		// (get) Token: 0x060016AF RID: 5807 RVA: 0x00327574 File Offset: 0x00325774
		// (set) Token: 0x060016AE RID: 5806 RVA: 0x0032756B File Offset: 0x0032576B
		public virtual TBlockSqlNode Blcok
		{
			get
			{
				return this._blcok;
			}
			set
			{
				this._blcok = value;
			}
		}

		// Token: 0x060016B0 RID: 5808 RVA: 0x0032757C File Offset: 0x0032577C
		public override void init(object arg1)
		{
			this._procedureName = (TObjectName)arg1;
			this._procedureName.ObjectType = 12;
			this._procedureName.DbObjectType = EDbObjectType.procedure;
		}

		// Token: 0x1700048F RID: 1167
		// (get) Token: 0x060016B1 RID: 5809 RVA: 0x003275A4 File Offset: 0x003257A4
		// (set) Token: 0x060016B2 RID: 5810 RVA: 0x003275AC File Offset: 0x003257AC
		public virtual int Kind
		{
			get
			{
				return this._kind;
			}
			set
			{
				this._kind = value;
			}
		}

		// Token: 0x17000490 RID: 1168
		// (get) Token: 0x060016B3 RID: 5811 RVA: 0x003275B5 File Offset: 0x003257B5
		// (set) Token: 0x060016B4 RID: 5812 RVA: 0x003275BD File Offset: 0x003257BD
		public virtual TExceptionClause ExceptionClause
		{
			get
			{
				return this._exceptionClause;
			}
			set
			{
				this._exceptionClause = value;
			}
		}

		// Token: 0x17000491 RID: 1169
		// (get) Token: 0x060016B5 RID: 5813 RVA: 0x003275C6 File Offset: 0x003257C6
		// (set) Token: 0x060016B6 RID: 5814 RVA: 0x003275CE File Offset: 0x003257CE
		public virtual TStatementListSqlNode Stmts
		{
			get
			{
				return this._stmts;
			}
			set
			{
				this._stmts = value;
			}
		}

		// Token: 0x17000492 RID: 1170
		// (get) Token: 0x060016B7 RID: 5815 RVA: 0x003275D7 File Offset: 0x003257D7
		// (set) Token: 0x060016B8 RID: 5816 RVA: 0x003275DF File Offset: 0x003257DF
		public virtual TStatementListSqlNode DeclareStmts
		{
			get
			{
				return this._declareStmts;
			}
			set
			{
				this._declareStmts = value;
			}
		}

		// Token: 0x17000493 RID: 1171
		// (get) Token: 0x060016BA RID: 5818 RVA: 0x003275F1 File Offset: 0x003257F1
		// (set) Token: 0x060016B9 RID: 5817 RVA: 0x003275E8 File Offset: 0x003257E8
		public virtual TCompoundSqlNode CompoundSqls
		{
			get
			{
				return this._compoundSqls;
			}
			set
			{
				this._compoundSqls = value;
			}
		}

		// Token: 0x040017A8 RID: 6056
		private TCreateFunctionOption _functionOption;

		// Token: 0x040017A9 RID: 6057
		private TTypeName _returnDataType;

		// Token: 0x040017AA RID: 6058
		private TConstant _objfile;

		// Token: 0x040017AB RID: 6059
		private TConstant _linkSymbol;

		// Token: 0x040017AC RID: 6060
		private TConstant _procedureLanguage;

		// Token: 0x040017AD RID: 6061
		private TConstant _functionBody;

		// Token: 0x040017AE RID: 6062
		private List<TProcedureOption> _procedureOptions;

		// Token: 0x040017AF RID: 6063
		private bool _isForReplication;

		// Token: 0x040017B0 RID: 6064
		private TObjectName _labelName;

		// Token: 0x040017B1 RID: 6065
		private TObjectName _endLabelName;

		// Token: 0x040017B2 RID: 6066
		private TInvokerRightsClause _invokerRightsClause;

		// Token: 0x040017B3 RID: 6067
		private TCallSpec _callSpec;

		// Token: 0x040017B4 RID: 6068
		private TObjectName _procedureName;

		// Token: 0x040017B5 RID: 6069
		private TParameterDeclarationList _parameters;

		// Token: 0x040017B6 RID: 6070
		private TStatementListSqlNode _innerStmts;

		// Token: 0x040017B7 RID: 6071
		private TStatementSqlNode _stmt;

		// Token: 0x040017B8 RID: 6072
		private TBlockSqlNode _blcok;

		// Token: 0x040017B9 RID: 6073
		private int _kind = 1;

		// Token: 0x040017BA RID: 6074
		private TExceptionClause _exceptionClause;

		// Token: 0x040017BB RID: 6075
		private TStatementListSqlNode _stmts;

		// Token: 0x040017BC RID: 6076
		private TStatementListSqlNode _declareStmts;

		// Token: 0x040017BD RID: 6077
		private TCompoundSqlNode _compoundSqls;
	}
}
